package com.spark.modules.generation.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.spark.common.annotation.Dict;
import com.spark.common.annotation.query.Query;
import com.spark.common.constants.QueryConstants;
import com.spark.common.core.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 在线设计表默认字段
 *
 * @author LYCHEE
 * @date 2025/02/22 10:10
 */
@Data
@TableName("online_default_fields")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
public class GenDefaultFields extends BaseEntity {

    /**
     * 通用字段
     *  : 0是 1否
     */
    @Query
    @Dict(dictCode = "yes_or_no")
    @NotNull(message = "通用字段不能为空")
    private java.lang.Integer isCommon;

    /**
     * 表类型
     *  : 单表single 主表main 附表attach 树表tree
     */
    @Query
    @Dict(dictCode = "online_table_type")
    @NotBlank(message = "表类型不能为空")
    private java.lang.String tableType;

    /**
     * 字段名称
     */
    @Query(QueryConstants.QUERY_LIKE)
    @NotBlank(message = "字段名称不能为空")
    private java.lang.String fieldName;

    /**
     * 字段注释
     */
    @NotBlank(message = "字段注释不能为空")
    private java.lang.String fieldAnnotation;

    /**
     * 字段类型
     */
    @NotBlank(message = "字段类型不能为空")
    private java.lang.String fieldType;

    /**
     * 字段长度
     */
    @NotNull(message = "字段长度不能为空")
    private java.lang.Integer fieldLength;

    /**
     * 小数点
     */
    @NotNull(message = "小数点不能为空")
    private java.lang.Integer decimalPoint;

    /**
     * 是否主键
     *  : 0是 1否
     */
    @Query
    @Dict(dictCode = "yes_or_no")
    @NotNull(message = "是否主键不能为空")
    private java.lang.Integer isPrimaryKey;

    /**
     * 允许为空
     *  : 0是 1否
     */
    @Query
    @Dict(dictCode = "yes_or_no")
    @NotNull(message = "允许为空不能为空")
    private java.lang.Integer isNull;

    /**
     * 是否可操作
     *  : 0是 1否
     */
    @Query
    @Dict(dictCode = "yes_or_no")
    @NotNull(message = "是否可操作不能为空")
    private java.lang.Integer isHandle;

    /**
     * 状态
     *  : 0正常 1禁用
     */
    @Query
    @Dict(dictCode = "status")
    @NotNull(message = "状态不能为空")
    private java.lang.Integer status;
}
